<?php

class PC4_Util_Validacao_Unica extends PC4_Util_Validacao_Abstrata{
	public function valida(&$registro, $campo, $modelo = null, $where = null) {
		if (isset($registro[$campo])) {

//TODO: TIRAR TODA ESSA GAMBIARRA do $where
if(!isset($where)){
	$where = 0;
}
//new d($where);die;
//$where = str_replace('=', '<>', $where);
//$where = str_replace("'", '"', $where);
	
			$where = $modelo->getSelect($where);
			$where->reset('columns');
			$where->columns($modelo->pk);
			
			$select = $modelo->select();
//TODO: ver validação
			$select->where($modelo->pk . ' NOT IN ?', $where);
			$select->where($campo . ' = ?', $registro[$campo]);
//new d($select->__toString());die;

			// procurar registros onde o $campo == $registro[$campo] && id <> $id
			$rs = $modelo->fetchAll($select);
			if (count($rs) > 0) {
				throw new Exception('O ' . $campo . ' "' . $registro[$campo] . '" já existe na base de dados!');
			}
		}
	}
}

?>